V4.5 possible regression: "version `GLIBC

您所在的位置:网站首页 debian 8 V4.5 possible regression: "version `GLIBC

V4.5 possible regression: "version `GLIBC

#V4.5 possible regression: "version `GLIBC| 来源: 网络整理| 查看: 265

Hello @jaimet ,

yes this looks like a packaging problem. The problem is that the libpython was linked with glibc 2.35 on ubuntu-22.04, but the code is run on debian bullseye with glibc 2.31. Glibc of course does not guarantee backward compatibility, so the dynamic loader fails because new symbol versions in 2.35 are not available in 2.31. The problem is that esptool github build workflow uses ubuntu-latest(22.04) runner and pyinstaller does not pack glibc libraries.

This is easily reproducible

docker run -it --rm python:3.8-bullseye bash wget https://github.com/espressif/esptool/releases/download/v4.5/esptool-v4.5-linux-amd64.zip unzip esptool-v4.5-linux-amd64.zip esptool-v4.5-linux-amd64/esptool

[12] Error loading Python lib '/tmp/_MEI265mQ2/libpython3.8.so.1.0': dlopen: /lib/x86_64-linux-gnu/libm.so.6: version 'GLIBC_2.35' not found (required by /tmp/_MEI265mQ2/libpython3.8.so.1.0)

One solution would be to somehow force the pyinstaller to pack also libc libraries for esptool, but I'm not sure if this could be easily done. Other possibility is to use some older ubuntu runner and make it clear that the pyinstaller one-file package requires at least a specific glibc version installed on the system where it's used.

There is a github ubuntu-20.04 runner which has glibc 2.31 and using it seems to solve this problem. At least for the current debian stable distro.

I quickly tried this in my esptool fork with the current version on master branch and the generated pyinstaller package is working for me on debian 11

root@82bef8e11ffe:/# cat /etc/debian_version 11.6 root@82bef8e11ffe:/# ./esptool version esptool.py v4.6-dev 4.6-dev

The following patch should hopefully fix this problem, but maybe there is a better solution.

diff --git a/.github/workflows/build_esptool.yml b/.github/workflows/build_esptool.yml index 380732915f2c..ca4d7eaca49d 100644 --- a/.github/workflows/build_esptool.yml +++ b/.github/workflows/build_esptool.yml @@ -8,12 +8,12 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - os: [macos-latest, ubuntu-latest, windows-latest] + os: [macos-latest, ubuntu-20.04, windows-latest] include: - os: macos-latest TARGET: macos SEPARATOR: ':' - - os: ubuntu-latest + - os: ubuntu-20.04 TARGET: linux-amd64 SEPARATOR: ':' - os: windows-latest

Thank you very much for reporting this.



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3